package Persistencia;


import Entidades.EntInmueble;
import java.sql.Connection;
//import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author maxtor
 */
public class DaoInmueble {

    public List<EntInmueble> ListarTodosInmueble(Connection con) {
        //usuario,clave, perfil, estado
        List<EntInmueble> resul = new ArrayList<EntInmueble>();
        //    c.setId("no existe");
        try {
            PreparedStatement p = con.prepareStatement(InmuebleSqlHelper.getAllInmueble());
           // System.out.println(ArrendatarioSqlHelper.getAllArrendatario());
            ResultSet r = p.executeQuery();
            while (r.next()) {
                EntInmueble c = new EntInmueble();
                c.setCodigo(r.getString("Codigo"));
                c.setDireccion(r.getString("Direccion"));
                c.setBarrio(r.getString("Barrio"));
                c.setNroHabitaciones(r.getString("NroHabitaciones"));
                c.setPisos(r.getString("Pisos"));
                c.setEstrato(r.getString("Estrato"));
                c.setDescripcionEstado(r.getString("DescripcionEstado"));
               
                resul.add(c);

            }
        } catch (Exception e) {
            e.printStackTrace();
            //    return c;

        } finally {
            try {
                con.close();
            } catch (Exception ex) {
            }

        }
        return resul;
    }

    public int crear(Connection c, EntInmueble Inmueble) {
        String sql = InmuebleSqlHelper.crear();
        int resultadoCrear = 0;
        try {
            PreparedStatement st = c.prepareStatement(sql);

            st.setString(1,Inmueble.getCodigo());
            st.setString(2, Inmueble.getDireccion());
            st.setString(3, Inmueble.getBarrio());
            st.setString(4, Inmueble.getNroHabitaciones());
            st.setString(5, Inmueble.getPisos());
            st.setString(6, Inmueble.getEstrato());
            st.setString(7, Inmueble.getDescripcionEstado());
            


            resultadoCrear = st.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(DaoInmueble.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                c.close();
            } catch (SQLException ex) {
                Logger.getLogger(DaoInmueble.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return resultadoCrear;
    }
    
      public int modificar(Connection c, EntInmueble Inmueble) {
        String sql = InmuebleSqlHelper.modificar();
        int resultadoModificar = 0;
        try {
            PreparedStatement st = c.prepareStatement(sql);
            
            st.setString(1, Inmueble.getDireccion());
            st.setString(2, Inmueble.getBarrio());
            st.setString(3, Inmueble.getNroHabitaciones());
            st.setString(4, Inmueble.getPisos());
            st.setString(5, Inmueble.getEstrato());
            st.setString(6, Inmueble.getDescripcionEstado());
            st.setString(7,Inmueble.getCodigo());

            resultadoModificar = st.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(DaoInmueble.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                c.close();
            } catch (SQLException ex) {
                Logger.getLogger(DaoInmueble.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return resultadoModificar;
    }

       public EntInmueble Buscar(Connection con, String Codigo) {
        EntInmueble c = new EntInmueble();
        c.setCodigo("Este codigo no existe");
        try {
            PreparedStatement cl = con.prepareStatement(InmuebleSqlHelper.Buscar(Codigo));
            ResultSet r = cl.executeQuery();
            while (r.next()) {
               c.setCodigo(r.getString(1));
               c.setDireccion(r.getString(2));
               c.setBarrio(r.getString(3));
               c.setNroHabitaciones(r.getString(4));
               c.setPisos(r.getString(5));
               c.setEstrato(r.getString(6));
               c.setDescripcionEstado(r.getString(7));
              
            }
        } catch (Exception e) {
            e.printStackTrace();
            return c;

        } finally {
            try {
                con.close();
            } catch (Exception ex) {
            }

        }
        return c;
    }

 public int eliminar(Connection c, EntInmueble Inmueble) {
        String sql = InmuebleSqlHelper.eliminar();
        int resultadoEliminar = 0;
        try {
            PreparedStatement st = c.prepareStatement(sql);

            st.setString(1, Inmueble.getCodigo());

            resultadoEliminar = st.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(DaoInmueble.class.getName()).log(Level.SEVERE, null, ex);

        } finally {
            try {
                c.close();
            } catch (SQLException ex) {
                Logger.getLogger(DaoInmueble.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return resultadoEliminar;
    }
}